package sv.com.renacempleo.dto.red;

import java.sql.Blob;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Formula;

import sv.com.renacempleo.dto.ctg.CtgCatalogo;
import sv.com.renacempleo.dto.ctg.CtgDepartamento;
import sv.com.renacempleo.dto.ctg.CtgDocumentos;
import sv.com.renacempleo.dto.ctg.CtgMunicipio;
import sv.com.renacempleo.dto.sgd.SgdUsuario;

@Entity
@Table (name = "red_demandantes")
public class RedDemandantes{

	
	@Id
	@Column(name = "red_dem_folio")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long redDemandanteFolio;
	@Column(name = "red_dem_numerodoc", nullable = false)
	private String redDemandanteNumeroDocumento;
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_doc_id", nullable=false)
	private CtgDocumentos ctgDocumento;
	@Column(name = "red_dem_nombres", length = 100)
	private String redDemandanteNombres;
	@Column(name = "red_dem_apellido", length = 100)
	private String redDemandanteApellidos;
	@Column(name = "red_dem_fechanac", length = 10)
	private String redDemandanteFechaNacimiento;
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn (name = "ctg_paisnac_id")
	private CtgCatalogo ctgPais;
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_depnac_id")
	private CtgDepartamento ctgDepartamentoNacimiento;
	@ManyToOne( fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_munnac_id")
	private CtgMunicipio ctgMunicipioNacimiento;
	@Column (name = "red_dem_tel1", length = 25)
	private String redDemandanteTelefono1;
	@Column (name = "red_dem_tel2", length = 25)
	private String redDemandanteTelefono2;
	@Column (name = "red_dem_tel3", length = 25)
	private String redDemandanteTelefono3;
	@Column (name = "red_dem_cel", length = 25)
	private String redDemandanteCelular;
	@ManyToOne( fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_telco_id")
	private CtgCatalogo ctgTelco;
	@Column (name = "red_dem_direccion", length = 500)
	private String redDemandanteDireccion;
	@Column (name = "red_dem_foto")
	private Blob redDemandanteFoto;
	@Column (name = "red_dem_zona_residencia", length = 1)
	private String redDemandanteZonaResidencia; // RURAL o URBANA
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_paisres_id")
	private CtgCatalogo ctgPaisResidencia;
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_depres_id")
	private CtgDepartamento ctgDepartamentoResidencia;
	@ManyToOne( fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_munres_id")
	private CtgMunicipio ctgMunicipioResidencia;
	@ManyToOne( fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_gen_id")
	private CtgCatalogo ctgGenero;
	@ManyToOne( fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_est_id")
	private CtgCatalogo ctgEstadoCivil;
	@Column (name = "red_dem_peso")
	private Integer redDemandantePeso;
	@Column (name = "red_dem_estatura")
	private Integer redDemandanteEstatura;
	@Column (name = "red_dem_licencia", length = 1)
	private String redDemandanteLicencia;// SI o NO
	@ManyToOne( fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_tiplic_id")
	private CtgCatalogo ctgTipoLicencia;
	@Column (name = "red_dem_licencia_arma", length = 1)
	private String redDemandanteLicenciaArma; // SI o NO
	@Column (name = "red_dem_dui", length = 9)
	private String redDemandanteDUI;
	@Column (name = "red_dem_nit", length = 14)
	private String redDemandanteNIT;
	@Column (name = "red_dem_isss", length = 20)
	private String redDemandanteISSS;
	@Column (name = "red_dem_nup", length = 20)
	private String redDemandanteNUP;
	@Column (name = "red_dem_carnet_res", length = 20)
	private String redDemandanteCarneResidente;
	@Column (name = "red_dem_vehiculo", length = 1)
	private String redDemandanteVehiculo;// SI o NO
	@ManyToOne( fetch = FetchType.LAZY)
	@JoinColumn(name = "ctg_tipveh_id")
	private CtgCatalogo ctgTipoVehiculo;
	@Column (name = "red_dem_vehiculoanio", length = 4)
	private String redDemandanteAnioVehiculo;
	@Column (name = "red_dem_discapacidad", length = 1)
	private String redDemandanteDiscapacidad;// SI o NO
	@Column (name = "red_dem_privado", length = 1)
	private String redDemandantePrivado; // SI o NO
	@Column(name = "red_dem_activo", nullable = false, length = 1)
	private String redDemandanteActivo = "0";
	@Column(name = "red_dem_fecreg", length = 10, nullable = false)
	private String redDemandanteFechaRegistro;
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "wkf_estado_id", nullable = false)
	private CtgCatalogo wkfEstadoSeguimiento;
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "sgd_usr_id", nullable = false)
	private SgdUsuario sgdUsuario;
	@Column(name = "red_dem_email", length = 250)
	private String redDemandanteCorreo;
	@Column(name = "red_dem_dependientes")
	private Long redDemandanteDependientes;
	@Formula(value = "red_dem_nombres || ' ' || red_dem_apellido")
	private String redDemandanteFullName;
	
	public String getRedDemandanteNombres() {
		return redDemandanteNombres;
	}
	public void setRedDemandanteNombres(String redDemandanteNombres) {
		this.redDemandanteNombres = redDemandanteNombres;
	}
	public String getRedDemandanteApellidos() {
		return redDemandanteApellidos;
	}
	public void setRedDemandanteApellidos(String redDemandanteApellidos) {
		this.redDemandanteApellidos = redDemandanteApellidos;
	}
	public String getRedDemandanteFechaNacimiento() {
		return redDemandanteFechaNacimiento;
	}
	public void setRedDemandanteFechaNacimiento(String redDemandanteFechaNacimiento) {
		this.redDemandanteFechaNacimiento = redDemandanteFechaNacimiento;
	}
	public CtgCatalogo getCtgPais() {
		return ctgPais;
	}
	public void setCtgPais(CtgCatalogo ctgPais) {
		this.ctgPais = ctgPais;
	}
	public CtgDepartamento getCtgDepartamentoNacimiento() {
		return ctgDepartamentoNacimiento;
	}
	public void setCtgDepartamentoNacimiento(
			CtgDepartamento ctgDepartamentoNacimiento) {
		this.ctgDepartamentoNacimiento = ctgDepartamentoNacimiento;
	}
	public CtgMunicipio getCtgMunicipioNacimiento() {
		return ctgMunicipioNacimiento;
	}
	public void setCtgMunicipioNacimiento(CtgMunicipio ctgMunicipioNacimiento) {
		this.ctgMunicipioNacimiento = ctgMunicipioNacimiento;
	}
	public String getRedDemandanteTelefono1() {
		return redDemandanteTelefono1;
	}
	public void setRedDemandanteTelefono1(String redDemandanteTelefono1) {
		this.redDemandanteTelefono1 = redDemandanteTelefono1;
	}
	public String getRedDemandanteTelefono2() {
		return redDemandanteTelefono2;
	}
	public void setRedDemandanteTelefono2(String redDemandanteTelefono2) {
		this.redDemandanteTelefono2 = redDemandanteTelefono2;
	}
	public String getRedDemandanteTelefono3() {
		return redDemandanteTelefono3;
	}
	public void setRedDemandanteTelefono3(String redDemandanteTelefono3) {
		this.redDemandanteTelefono3 = redDemandanteTelefono3;
	}
	public String getRedDemandanteCelular() {
		return redDemandanteCelular;
	}
	public void setRedDemandanteCelular(String redDemandanteCelular) {
		this.redDemandanteCelular = redDemandanteCelular;
	}
	public CtgCatalogo getCtgTelco() {
		return ctgTelco;
	}
	public void setCtgTelco(CtgCatalogo ctgTelco) {
		this.ctgTelco = ctgTelco;
	}
	public String getRedDemandanteDireccion() {
		return redDemandanteDireccion;
	}
	public void setRedDemandanteDireccion(String redDemandanteDireccion) {
		this.redDemandanteDireccion = redDemandanteDireccion;
	}
	public Blob getRedDemandanteFoto() {
		return redDemandanteFoto;
	}
	public void setRedDemandanteFoto(Blob redDemandanteFoto) {
		this.redDemandanteFoto = redDemandanteFoto;
	}
	public String getRedDemandanteZonaResidencia() {
		return redDemandanteZonaResidencia;
	}
	public void setRedDemandanteZonaResidencia(String redDemandanteZonaResidencia) {
		this.redDemandanteZonaResidencia = redDemandanteZonaResidencia;
	}
	public CtgCatalogo getCtgPaisResidencia() {
		return ctgPaisResidencia;
	}
	public void setCtgPaisResidencia(CtgCatalogo ctgPaisResidencia) {
		this.ctgPaisResidencia = ctgPaisResidencia;
	}
	public CtgDepartamento getCtgDepartamentoResidencia() {
		return ctgDepartamentoResidencia;
	}
	public void setCtgDepartamentoResidencia(
			CtgDepartamento ctgDepartamentoResidencia) {
		this.ctgDepartamentoResidencia = ctgDepartamentoResidencia;
	}
	public CtgMunicipio getCtgMunicipioResidencia() {
		return ctgMunicipioResidencia;
	}
	public void setCtgMunicipioResidencia(CtgMunicipio ctgMunicipioResidencia) {
		this.ctgMunicipioResidencia = ctgMunicipioResidencia;
	}
	public CtgCatalogo getCtgGenero() {
		return ctgGenero;
	}
	public void setCtgGenero(CtgCatalogo ctgGenero) {
		this.ctgGenero = ctgGenero;
	}
	public CtgCatalogo getCtgEstadoCivil() {
		return ctgEstadoCivil;
	}
	public void setCtgEstadoCivil(CtgCatalogo ctgEstadoCivil) {
		this.ctgEstadoCivil = ctgEstadoCivil;
	}
	public Integer getRedDemandantePeso() {
		return redDemandantePeso;
	}
	public void setRedDemandantePeso(Integer redDemandantePeso) {
		this.redDemandantePeso = redDemandantePeso;
	}
	public Integer getRedDemandanteEstatura() {
		return redDemandanteEstatura;
	}
	public void setRedDemandanteEstatura(Integer redDemandanteEstatura) {
		this.redDemandanteEstatura = redDemandanteEstatura;
	}
	public String getRedDemandanteLicencia() {
		return redDemandanteLicencia;
	}
	public void setRedDemandanteLicencia(String redDemandanteLicencia) {
		this.redDemandanteLicencia = redDemandanteLicencia;
	}
	public CtgCatalogo getCtgTipoLicencia() {
		return ctgTipoLicencia;
	}
	public void setCtgTipoLicencia(CtgCatalogo ctgTipoLicencia) {
		this.ctgTipoLicencia = ctgTipoLicencia;
	}
	public String getRedDemandanteLicenciaArma() {
		return redDemandanteLicenciaArma;
	}
	public void setRedDemandanteLicenciaArma(String redDemandanteLicenciaArma) {
		this.redDemandanteLicenciaArma = redDemandanteLicenciaArma;
	}
	public String getRedDemandanteDUI() {
		return redDemandanteDUI;
	}
	public void setRedDemandanteDUI(String redDemandanteDUI) {
		this.redDemandanteDUI = redDemandanteDUI;
	}
	public String getRedDemandanteNIT() {
		return redDemandanteNIT;
	}
	public void setRedDemandanteNIT(String redDemandanteNIT) {
		this.redDemandanteNIT = redDemandanteNIT;
	}
	public String getRedDemandanteISSS() {
		return redDemandanteISSS;
	}
	public void setRedDemandanteISSS(String redDemandanteISSS) {
		this.redDemandanteISSS = redDemandanteISSS;
	}
	public String getRedDemandanteNUP() {
		return redDemandanteNUP;
	}
	public void setRedDemandanteNUP(String redDemandanteNUP) {
		this.redDemandanteNUP = redDemandanteNUP;
	}
	public String getRedDemandanteCarneResidente() {
		return redDemandanteCarneResidente;
	}
	public void setRedDemandanteCarneResidente(String redDemandanteCarneResidente) {
		this.redDemandanteCarneResidente = redDemandanteCarneResidente;
	}
	public String getRedDemandanteVehiculo() {
		return redDemandanteVehiculo;
	}
	public void setRedDemandanteVehiculo(String redDemandanteVehiculo) {
		this.redDemandanteVehiculo = redDemandanteVehiculo;
	}
	public CtgCatalogo getCtgTipoVehiculo() {
		return ctgTipoVehiculo;
	}
	public void setCtgTipoVehiculo(CtgCatalogo ctgTipoVehiculo) {
		this.ctgTipoVehiculo = ctgTipoVehiculo;
	}
	public String getRedDemandanteAnioVehiculo() {
		return redDemandanteAnioVehiculo;
	}
	public void setRedDemandanteAnioVehiculo(String redDemandanteAnioVehiculo) {
		this.redDemandanteAnioVehiculo = redDemandanteAnioVehiculo;
	}
	public String getRedDemandanteDiscapacidad() {
		return redDemandanteDiscapacidad;
	}
	public void setRedDemandanteDiscapacidad(String redDemandanteDiscapacidad) {
		this.redDemandanteDiscapacidad = redDemandanteDiscapacidad;
	}
	public String getRedDemandantePrivado() {
		return redDemandantePrivado;
	}
	public void setRedDemandantePrivado(String redDemandantePrivado) {
		this.redDemandantePrivado = redDemandantePrivado;
	}
	public String getRedDemandanteNumeroDocumento() {
		return redDemandanteNumeroDocumento;
	}
	public void setRedDemandanteNumeroDocumento(String redDemandanteNumeroDocumento) {
		this.redDemandanteNumeroDocumento = redDemandanteNumeroDocumento;
	}
	public String getRedDemandanteActivo() {
		return redDemandanteActivo;
	}
	public void setRedDemandanteActivo(String redDemandanteActivo) {
		this.redDemandanteActivo = redDemandanteActivo;
	}
	public String getRedDemandanteFechaRegistro() {
		return redDemandanteFechaRegistro;
	}
	public void setRedDemandanteFechaRegistro(String redDemandanteFechaRegistro) {
		this.redDemandanteFechaRegistro = redDemandanteFechaRegistro;
	}
	
	public CtgCatalogo getWkfEstadoSeguimiento() {
		return wkfEstadoSeguimiento;
	}
	public void setWkfEstadoSeguimiento(CtgCatalogo wkfEstadoSeguimiento) {
		this.wkfEstadoSeguimiento = wkfEstadoSeguimiento;
	}
	public SgdUsuario getSgdUsuario() {
		return sgdUsuario;
	}
	public void setSgdUsuario(SgdUsuario sgdUsuario) {
		this.sgdUsuario = sgdUsuario;
	}
	public Long getRedDemandanteFolio() {
		return redDemandanteFolio;
	}
	public void setRedDemandanteFolio(Long redDemandanteFolio) {
		this.redDemandanteFolio = redDemandanteFolio;
	}
	public String getRedDemandanteFullName() {
		return redDemandanteFullName;
	}
	public void setRedDemandanteFullName(String redDemandanteFullName) {
		this.redDemandanteFullName = redDemandanteFullName;
	}
	public String getRedDemandanteCorreo() {
		return redDemandanteCorreo;
	}
	public void setRedDemandanteCorreo(String redDemandanteCorreo) {
		this.redDemandanteCorreo = redDemandanteCorreo;
	}
	public CtgDocumentos getCtgDocumento() {
		return ctgDocumento;
	}
	public void setCtgDocumento(CtgDocumentos ctgDocumento) {
		this.ctgDocumento = ctgDocumento;
	}
	public Long getRedDemandanteDependientes() {
		return redDemandanteDependientes;
	}
	public void setRedDemandanteDependientes(Long redDemandanteDependientes) {
		this.redDemandanteDependientes = redDemandanteDependientes;
	}
	

}
